Video games and other simulators that feature a virtual environment, such as a virtual world, are increasingly popular. Simulators typically feature a computer-generated landscape that may represent an actual or imaginary location in a past, present, or future time. Simulator players, or users, can create computer-generated characters, referred to as avatars, and control the avatars in the landscape through client software that runs on a computing device. An avatar can typically roam the landscape and interact with other users' avatars and with other computer-generated objects. Virtual worlds are frequently implemented in a distributed computing environment where server software running on certain computers execute certain aspects of the simulator, and client software executing on user devices, such as personal computers, execute other aspects of the simulator.
One function typically managed by a server in such simulators is to ensure that each user device is aware of changes that are continually occurring in the area of the virtual world in which their respective avatar is located. For example, if a user manipulates his avatar in the direction of a second avatar, the user associated with the second avatar should see the first avatar moving across the virtual world toward the second avatar. Movement of avatars is communicated between user devices by messages transmitted from the user device responsible for manipulating the avatar to the server, and then from the server to the user devices that must be made aware of the movement of the avatar.
One problem that can arise while participating in a virtual world relates to choppy, or time delayed, movement of avatars in the virtual world. This phenomenon is commonly referred to as lag. Lag can occur for a number of reasons, including, for example, a lack of processing power in a client or a server, unreliable or slow network communications that inhibit the timely distribution of messages, or the wide variation in network speeds of the networks that couple the user devices to the server. Another related phenomenon is ‘jitter.’ Jitter relates to irregularity of message delivery. Irregular message delivery can result in a loss of synchronicity among avatars. Lag and jitter are disruptive in a simulator, and can even cause users to terminate their participation in the simulation.
Virtual world simulators are frequently enjoyed by individuals in group environments. It is common for several users to meet at a particular location, such as the home of one of the users, and play a virtual world simulator on separate user devices while in the same physical location. Lag and jitter can be particularly noticeable in these situations because the time delayed movements of avatars is more noticeable when a user can see multiple user devices at once. Moreover, it is likely that the users will direct their avatars to a common area of the virtual world, and the lag and jitter will become even more apparent in such situations. Thus, there is a need to minimize or eliminate lag and jitter in such situations.